1. Field of the Invention
The present invention relates to systems that communicate across computer networks. More specifically, the present invention relates to a method and apparatus for determining network topology in a distributed peer-to-peer network.
2. Related Art
The explosion of broadband communications has helped the Internet become a viable distribution mechanism for multimedia and high quality video. Prior to broadband, Internet connections were much too slow for the large file sizes required to transmit multimedia and high quality video. Now that more and more people have broadband connections and are requesting ever-larger items of content, bandwidth and server utilization is quickly becoming a bottleneck on the distribution end. For example, in some cases, extraordinary events have brought online news sites to a virtual standstill as people flocked to them to retrieve video of the events.
Some companies have tried to solve this problem by creating distributed content delivery networks. In a distributed content delivery network, once a peer has received a file, the peer becomes a potential server for that file to other clients. This is a great advantage because as peers download the content, the number of potential servers for the content grows. In this way, the classic bottleneck caused by many clients trying to retrieve the same content from a single server is virtually eliminated.
However, because peers on a distributed content delivery network are relatively ignorant of the network topology, they can make bad decisions about how to deliver content. For example, a peer may attempt to retrieve content from a server that is located a large number of hops away, when a closer server is able to serve the same content. This sub-optimal choice of servers can result in poor performance in retrieving content and can create unnecessary network traffic.
Hence, what is needed is a method and an apparatus that uses information about network topology in selecting servers to deliver content. Note that it can be problematic to determine the topology of a network, because the topology continually changes over time as nodes are added and removed from the network, and as network links are established or become unavailable.
In some cases, network administrators may have knowledge about network topology that is useful in selecting servers to supply content. For example, a network administrator may know that certain peers are closer to each other or are connected by higher bandwidth connections. In other cases, a network administrator may not want to use certain bandwidth-critical network links or nodes for content delivery purposes.
Hence, what is needed is a method and an apparatus that allows a network administrator to explicitly establish peering policies for a content delivery network.